Compactando / descompactando arquivos simultaneamente [Melhorado]
Publicado por Sandro Marcell 18/07/2007
[ Hits: 6.584 ]
Homepage: http://sanmarcell.wordpress.com
Este script compacta/descompacta arquivos simultaneamente, sem necessidade de parâmetros extras.
Ex.: nome_script arq.txt arq.pdf arq.gz arq.tar.gz
Os arquivos arq.txt e arq.pdf serão compactados; já os arquivs arq.gz e arq.tar.gz serão descompactados.
Está é a versão Shell Bash de um script Tcl que postei aqui no VOL.
Falou!!!
#!/bin/bash
#
# Compacte/descompacte arquivos simultaneamente.
# (Versão Shell Bash)
#
# Autor: Sandro Marcell (sandro_marcell@yahoo.com.br)
#
# Uso: nome_script arquivo1 [arquivoN]
#
# Obs.:
# É possível o uso do metacaractere (*)
# São necessários os programas: tar, gzip e bzip2
# Realçando saída do comando 'echo':
Echo () { echo -e "\e[1m$*\e[m" ; }
# Checando parâmetros:
[ -z $BASH_ARGC ] && Echo "Uso: $(basename $0) arquivo1 [arquivoN]" && exit
# Simples avisos:
Aguarde () { Echo "Descompactando..." ; sleep 1 ; }
Aguarde2 () { Echo "Compactando..." ; sleep 1 ; }
# Arquivo de log:
LOG=/tmp/$(basename $0)-$USER.log
# Função que testa código de retorno:
Testando () {
[ $? == 0 ] && Echo "Arquivo descompactado!" \
|| Echo "-> Erro! Mais detalhes em $LOG"
}
# Início do loop:
for A ; do
# Testes condicionais:
[ ! -e $A ] && Echo "-> Arquivo não encontrado." && continue
[ ! -O $A ] && Echo "-> Acesso negado." && continue
# Compactar ou descompactar?
case $A in
# Descompactando...
*.tar.gz | *.tgz)
Aguarde
tar -zxf $A 2>> $LOG
Testando $?
;;
*.gz)
Aguarde
gunzip $A 2>> $LOG
Testando $?
;;
*.tar.bz2 | *.tbz)
Aguarde
tar -jxf $A 2>> $LOG
Testando $?
;;
*.bz2)
Aguarde
bunzip2 $A 2>> $LOG
Testando $?
;;
*)
# Compactando...
[ -d $A ] && {
Aguarde2
tar -czf $A.tar.gz $A 2>> $LOG
[ $? == 0 ] && Echo "Diretório compactado!" \
|| Echo "-> Erro! Mais detalhes em $LOG"
} || {
Aguarde2
gzip -f9 $A 2>> $LOG
[ $? == 0 ] && Echo "Arquivo compactado!" \
|| Echo "-> Erro! Mais detalhes em $LOG"
}
;;
esac
done
#Fim
Script para conexão de provedor à radio
Montar unidades de Rede windows
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
esqueci a senha do boot do notebook dell vostro 3300 (0)
PIP3 - erro ao instalar módulo do mariadb para o Python (7)
estou na 22.1 e não é atualizado pra 22.4 via "sudo full-upgrade&... (2)









